现在做个很老很老的项目,整个工程只有一个Controller,能想到这得多老的项目了吧,要集成Cordova,之前js交互实在很差,写一点爬坑过程
1、项目如果不是刚开始就集成Cordova,不建议使用官网那个教程,试了下,没成功
2、使用cocoapods安装的cordova 和插件
1 2
| pod 'Cordova', '~> 4.5.4' pod 'cordova-plugin-device', '~> 1.1.3'
|
3、使用官网教程新建demo,自己工程需要哪些插件,用官网命令在demo里面装上,platform里面www复制进项目
然后,将下面js原名称Run Script修改为Copy www directory;然后将show env那个选项去掉,最后将下面的代码字段复制到build phases:(如果h5放服务器,这段不需要)
1
| NODEJS_PATH=/usr/local/bin; NVM_NODE_PATH=~/.nvm/versions/node/`nvm version 2>/dev/null`/bin; N_NODE_PATH=`find /usr/local/n/versions/node/* -maxdepth 0 -type d 2>/dev/null | tail -1`/bin; XCODE_NODE_PATH=`xcode-select --print-path`/usr/share/xcs/Node/bin; PATH=$NODEJS_PATH:$NVM_NODE_PATH:$N_NODE_PATH:$XCODE_NODE_PATH:$PATH && node cordova/lib/copy-www-build-step.js
|
4、将config.xml拖到工程
5、自己的Controller继承CDVViewController,创建的时候这样写,如果www本地调试的话
1 2 3
| TestViewController *test = [[TestViewController alloc]init]; test.wwwFolderName = @"www"; test.startPage = @"index.html";
|
如果www放服务器,可以这样写
1 2 3
| TestViewController *test = [[TestViewController alloc]init]; test.wwwFolderName = @""; test.startPage = @"http://localhost/www/index.html";
|
我这个放在我本地搭建的服务器了,所以写localhost,改成自己服务器地址即可,切记:这样写,是打开safary打开的,需要在config.xml中修改
1 2 3 4
| <!-- <allow-intent href="http://*/*" />--> <!-- <allow-intent href="https://*/*" />--> <allow-navigation href="http://*/*" /> <allow-navigation href="https://*/*" />
|
这样基本可跑了。用的话去看官方怎么用就可以了,自定义插件一定要在config.xml中配上才行,例如我这个
1 2 3 4
| <feature name="MyPlugin"> <param name="ios-package" value="MyPlugin" /> <param name="onload" value="true" /> </feature>
|
凭印象写,就这样